package com.seafood.dto;

import lombok.Data;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
 * 用户更新DTO
 */
@Data
public class UserUpdateDTO {
    
    /**
     * 邮箱
     */
    @NotBlank(message = "邮箱不能为空")
    @Email(message = "邮箱格式不正确")
    private String email;
    
    /**
     * 手机号
     */
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phone;
    
    /**
     * 真实姓名
     */
    @NotBlank(message = "真实姓名不能为空")
    @Size(max = 50, message = "真实姓名长度不能超过50个字符")
    private String realName;
    
    /**
     * 用户类型：INDIVIDUAL、ENTERPRISE、ADMIN
     */
    @NotBlank(message = "用户类型不能为空")
    @Pattern(regexp = "^(INDIVIDUAL|ENTERPRISE|ADMIN)$", message = "用户类型必须是INDIVIDUAL、ENTERPRISE或ADMIN")
    private String userType;
    
    /**
     * 用户状态：ACTIVE、INACTIVE、PENDING
     */
    @NotBlank(message = "用户状态不能为空")
    @Pattern(regexp = "^(ACTIVE|INACTIVE|PENDING)$", message = "用户状态必须是ACTIVE、INACTIVE或PENDING")
    private String status;
    
    /**
     * 公司名称（可选）
     */
    @Size(max = 100, message = "公司名称长度不能超过100个字符")
    private String companyName;
    
    /**
     * 备注
     */
    @Size(max = 500, message = "备注长度不能超过500个字符")
    private String remark;
}